/**
 * @description json schema 的中间件
 */

// const validate = require("../validator/_validate")
const { ErrorModel } = require('../model/ResModel')
const { jsonSchemaFileInfo } = require('../model/Errorinfo')

//生成json schema 验证的中间件
function genValidator(ValidateFn) {
  //定义中间件函数
  async function validator(ctx,next) {
    //校验
    const data = ctx.request.body;
    const error = ValidateFn(data);
    if (error) {
      //验证失败
      ctx.body = new ErrorModel(jsonSchemaFileInfo)
      return
    }
    //验证成功，继续
    await next()
  }
  //返回中间件
  return validator
}

module.exports = {
  genValidator
}
